import json
from typing import Optional

from fastapi import APIRouter, Query

app02 = APIRouter()

# 根据用户名和年龄查询用户信息
@app02.get('/user/test')
async def get_test(
        name: Optional[str] = Query(None,description='按照姓名查询数据'),
        age: Optional[int] = Query(None,description='按照年龄查询数据')
):
    # 读取到Users.json中的数据，并显示到前端页面
    try:
        # 从Users.json文件中读取数据
        with open('Users.json', 'r', encoding='utf-8') as f:
            users_data = json.load(f)
            # 根据查询条件过滤后的数据，用于返回给前端
            filtered_users = users_data

        # 根据参数过滤条件
        if name is not None:
            filtered_users = [user for user in filtered_users if user['name'] == name]
        if age is not None:
            filtered_users = [user for user in filtered_users if user['age'] == age]

        # 构建返回响应消息
        conditions = []
        if name is not None:
            conditions.append(f'姓名={name}')
        if age is not None:
            conditions.append(f'年龄={age}')
        message = '获取用户信息成功' if not conditions else f'搜索条件{','.join(conditions)}'
        return {
            'message':message,
            'users':filtered_users
        }

    except FileNotFoundError:
        return {'error': 'User.json文件不存在'}
    except json.JSONDecodeError:
        return {'error': 'user.json文件格式不正确'}


# 查询所有用户信息
@app02.get('/user/get')
async def get_user_test():
    print('这里是Get请求响应的数据')
    # 读取到Users.json中的数据，并显示到前端页面
    try:
        # 从Users.json文件中读取数据
        with open('Users.json','r',encoding='utf-8') as f:
            users_data = json.load(f)
            return users_data

    except FileNotFoundError:
        return {'error': 'User.json文件不存在'}
    except json.JSONDecodeError:
        return {'error': 'user.json文件格式不正确'}



